<p>检查在类中重写了equals方法后后也应重写了hashCode方法 </p>
<blockquote>
<p>如果根据<code> equals（Object）</code>方法两个对象相等，则在两个对象中的每个对象上调用<code> hashCode </code>方法必须产生相同的整数结果。 </p>
  <p>如果根据<code> equals（java.lang.Object）</code>方法，如果两个对象不相等，则不要求调用<code> hashCode </code>方法这两个对象中的每个对象必须产生不同的整数结果。</p>
  <p>但是，程序员应该意识到，为不相等的对象产生不同的整数结果可能会提高哈希表的性能。</p>
</blockquote>
<h2>不规范的代码示例</h2>
<pre>
class MyClass {    // 不符合规定-还应重写“ hashCode（）”

  @Override
  public boolean equals(Object obj) {
    /* ... */
  }

}
</pre>
<h2>正确的代码示例</h2>

<pre>
class MyClass {    // Compliant

  @Override
  public boolean equals(Object obj) {
    /* ... */
  }

  @Override
  public int hashCode() {
    /* ... */
  }

}
</pre>
<h2>更多</h2>

<ul>
<li> <a href="http://cwe.mitre.org/data/definitions/581.html">MITRE, CWE-581</a> - Object Model Violation: Just One of Equals and Hashcode Defined</li>
<li> CERT Java Secure Coding, MET09-J - Classes that define an equals() method must also define a hashCode() method</li>
</ul>

